import java.util.Random;

/*
搬砖问题
创建一个XunHuanQianTao3类, 在类的main方法里面编写代码, 完成如下功能:
搬砖问题：36 块砖,36 人搬,男搬4,女搬3,两个小孩抬1砖,要求一次全搬完,编写代码, 求解男、女和小孩各需要几个？
男 9
女 12

 */
class Z1XunHuanQianTao3{
    public static void main(String[] args) {
        //男
        for (int i = 0; i <= 9; i++) {
            //女
            for (int j = 0; j <= 12; j++) {
                //小孩人数
                int num = 36-i-j;
                if(num%2==1){
                    //小孩为奇数,不满足题意
                    continue;
                }
                //判断砖是否搬完
                if(i*4+j*3+num/2==36){
                    System.out.println("男-"+i+",女"+j+",小孩="+num);
                }
            }
        }
    }
}
/*
男-3,女3,小孩=30
 */
/*
求最大值
有一组数据 10,8,23,41,52,66,34,12。编写代码求出数组中的最大值。
（用数组实现）
 */
class Z2Max{
    public static void main(String[] args) {
        int[] arr = {10,8,23,41,52,66,34,12};
        //假如第一个最大,依次与后面的每一个比较,发现更大的,更新max
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(arr[i]>max){
                //发现更大的了,存入max
                max = arr[i];
            }
        }
        System.out.println("max = " + max);
    }
}
/*
平均值
有一个具有5个 int 数据的数组,数组中的每个元素都是[10, 30]之间的随机数。编写代码求出数组中的元素的和以及元素的平均值,打印出所有高于平均值的数,打印出所有低于平均值的数


 */
class Z3avg{
    public static void main(String[] args) {
        Random r = new Random();
        //初始化数组
        int[] arr = new int[5];
        //保存和
        double sum = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(21)+10;
            sum += arr[i];
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        System.out.println("sum = " + sum);
        double avg = sum/ arr.length;
        System.out.println("avg = " + avg);
        //保存小于平均值的数
        String smallStr = "";
        String bigStr = "";
        for (int i = 0; i < arr.length; i++) {
           if(arr[i]>avg){
               bigStr += arr[i]+" ";
           }else if(arr[i]<avg){
               smallStr += arr[i]+" ";
           }
        }
        System.out.println("smallStr = " + smallStr);
        System.out.println("bigStr = " + bigStr);
    }
}

/*
找18
有一个包含10个元素的数组,每个元素的值在[10,30]之间,查找数组中是否包含18,如果
有18,打印出值为18的元素的下标。如果没有18,打印“数组中不包含18”。
 */
class Z4find18{
    public static void main(String[] args) {
        Random r = new Random();
        //初始化数组
        int[] arr = new int[10];

        //保存18的下标
        String posStr = "";

        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(21)+10;
            System.out.print(arr[i]+" ");
            if(arr[i]==18){
                //发现了18
                posStr+=i+" ";
            }
        }
        System.out.println();

        if(posStr==""){
            System.out.println("数组中不包含18");
        }else{
            System.out.println("posStr = " + posStr);
        }

//        System.out.println(""=="");//true
    }
}
/*
找3个数
有一组已经排好顺序的数据：5,13,19,21,37,56,64,75,80,88,92。
编写代码查询数组中是否包含数据78,21,13。
 */

class Z4find3{
    public static void main(String[] args) {
        int[] numDbArr = {5,13,19,21,37,56,64,75,80,88,92};
        int[] targetArr = {78,21,13,80,81};
        //遍历目标
        for (int i = 0; i < targetArr.length; i++) {
            int target = targetArr[i];
            //从数据库中查找
            //假如没有target
            boolean haveTarget = false;
            for (int j = 0; j < numDbArr.length; j++) {
                if(target==numDbArr[j]){
                    //一旦找到，不必再找
                    haveTarget=true;
                    break;
                }
            }
            if(haveTarget){
                System.out.println("找到"+target);
            }else{
                System.out.println("没有"+target);
            }
        }
    }
}


class Job_4{
    public static void main(String[] args) {
        Random random = new Random();
        int[] arrRandom = new int[10];
        //true，没有18  no18
        boolean flag =true;
        for(int i=0; i<arrRandom.length; i++) {
            int r = random.nextInt(31 - 10) + 10;
            arrRandom[i] = r;
        }
        for(int i=0; i<arrRandom.length; i++){
            if(arrRandom[i] == 18) {
                if(flag)
                    System.out.print("值为18的元素的下标为：");
                System.out.print(i + " ");
                flag = false;
            }
        }
        if(flag)
            System.out.println("数组中不包含18");
    }
}
class Job_5{
    public static void main(String[] args) {
        int[] arr={5,13,19,21,37,56,64,75,80,88,92};
        boolean flag1=false,flag2=false,flag3=false;
        for(int i=0; i<arr.length; i++){
            if(arr[i]==78)
                flag1=true;
            if(arr[i]==21)
                flag2=true;
            if(arr[i]==13)
                flag3=true;
        }
        if(flag1 || flag2 || flag3) {
            System.out.print("包含数据");
            if (flag1)
                System.out.print("78 ");
            if (flag2)
                System.out.print("21 ");
            if (flag3)
                System.out.print("13");
        }else
            System.out.println("不包含任何数。");

    }
}